Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Побудова системи зберігання інформації на MMCSDFLASH-картах пам‘яті з підтримкою файлової системи FAT16

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Системи запису та відтворення інформації
Група:
ЗІ-31

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ З В І Т до лабораторної роботи №5 з курсу: «Системи запису та відтворення інформації» на тему: «Побудова системи зберігання інформації на MMC\SDFLASH-картах пам‘яті з підтримкою файлової системи FAT16» МЕТА РОБОТИ Набути вміння організовувати файловий ввід-вивід даних на Flash-носіях інформації в портативних аудіо- та відеопристроях. ЗАВДАННЯ Ознайомитись з теоретичним матеріалом.. Відкрити файл образу MMC/SD-карти SD_512.bin в програмі WinHex і визначити основні параметри файлової системи FAT16. Визначити основні параметри файлової системи в середовищі MatLab з допомогою розглянутих функцій і програм для образу MMC/SD-карти SD_512.bin. Написати функцію в середовищі MatLab, яка б зчитувала з двійкового образу SD_512.bin файл з заданим ім’ям ( як це робиться в FAT16) і виводила його вміст в робочу область. Ім’я файлу задано в таблиці 7. Порівняти вміст зчитаного файлу в середовищі MatLab і WinHex. Варіант Назва файлу  19 FILE19.C   ТЕКСТ ПРОГРАМИ clear all; % Кількістьбайт в секторі BytesPerSec = 512; % Буфердлячитання/записуданих Buffer = zeros(BytesPerSec, 1); % 1.Переводимокарту в активнийрежим s = MMC_SD_Init('D:\SD_512.bin'); % 2.Прочитати 0 сектор - VBR % Номерсектора з якогопочинається VBR VBR_Addr = 0; LBA = 0; [Buffer, c1] = MMC_SD_Read_Sector(s, LBA); % Перевіряємосигнатуру VBR if (Buffer(511) ~= hex2dec('55') & Buffer(512) ~= hex2dec('AA')) disp('VBR FAT Error'); return; end; % Визначаємокількістьбайт в секторі BytesPerSec = Buffer(hex2dec('b') + 1) + 2^8 * Buffer(hex2dec('b') + 2); z = sprintf('Кількістьбайт в секторі: %d', BytesPerSec); disp(z); % Визначаємокількістьсекторів в кластері SecPerClus = Buffer(hex2dec('d') + 1); z = sprintf('Кількістьсекторів в кластері: %d', SecPerClus); disp(z); % Кількістьзарезервованихсекторіввідпочаткукарти RsvdSecCnt = Buffer(hex2dec('e') + 1) + 256 * Buffer(hex2dec('f') + 1); z = sprintf('Кількістьзарезервованихсекторіввідпочаткукарти: %d', RsvdSecCnt); disp(z); % Кількістьтаблиць FAT NumFATs = Buffer(hex2dec('10') + 1); z = sprintf('Кількістьтаблиць FAT: %d' , NumFATs); disp(z); % Кількістьзаписів в Root Directory RootEntCnt = Buffer(hex2dec('11') + 1) + 256 * Buffer(hex2dec('12') + 1); z = sprintf('Кількістьзаписів в кореневомукаталозі Root Directory: %d', RootEntCnt); disp(z); % Кількістьсекторів MMC/SD-карти (до 32 MB) TotSec = Buffer(hex2dec('13') + 1) + 256 * Buffer(hex2dec('14') + 1); ifTotSec == 0 % MMC/SD-карта> 32 MB TotSec = Buffer(hex2dec('20') + 1) + 256 * Buffer(hex2dec('21') + 1) + 2^16 * Buffer(hex2dec('22') + 1) + 2^24 * Buffer(hex2dec('23') + 1); end; z = sprintf('Загальнакількістьсекторів MMC/SD-карти: %d', TotSec); disp(z); % Розміртаблиці FAT у секторах SecPerFAT = Buffer(hex2dec('16') + 1) + 256 * Buffer(hex2dec('17') + 1) ; z = sprintf('Розміртаблиці FAT усекторах: %d', SecPerFAT); disp(z); if (Buffer(hex2dec('36') + 1) ~= 'F'& Buffer(hex2dec('37') + 1) ~= 'A'& Buffer(hex2dec('38') + 1) ~= 'T'& Buffer(hex2dec('39') + 1) ~= '1'& Buffer(hex2dec('ЗА') + 1) ~= '6') disp('FAT16 Error'); end; temp = Buffer((hex2dec('36') + 1):(hex2dec('3A') + 1)); z = sprintf('Типфайловоїсистеми: %s', char(temp)); disp(z); % Обчислюємономерсектору з якогопочинаєтьсятаблиця FAT1 та FAT2 FAT_Sect1 = VBR_Addr + RsvdSecCnt; z = sprintf('Першийсектор FAT1: %d', FAT_Sect1); disp(z); if (NumFATs> 1) FAT_Sect2 = FAT_Sect1 + SecPerFAT; z = sprintf('Першийсектор FAT2: %d', FAT_Sect2); disp(z) ; end; % Обчислюємономерсектору з якогопочинаєтьсякореневийкаталог Root Directory RootDir_Sect = VBR_Addr + RsvdSecCnt + SecPerFAT * NumFATs; z = sprintf('Першийсектор Root Directory: %d', RootDir_Sect); disp(z); % Обчислюємокількістьсекторів в Root Directory RootDir_SectCnt = RootEntCnt * 32 / BytesPerSec; z = sprintf('Кількістьсекторів в Root Directory: %d', RootDir_SectCnt); disp(z) ; % Обчислюємономерсекторапочаткуобласт...
Антиботан аватар за замовчуванням

04.11.2013 21:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини